home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / program / bgui12.lha / demos / Images.c < prev    next >
C/C++ Source or Header  |  1995-06-11  |  6KB  |  208 lines

  1. ;/* Execute me to compile with DICE V3.0
  2. dcc Images.c -proto -mi -ms -mRR -lbgui
  3. quit
  4. */
  5. /*
  6. **    IMAGES.C
  7. **
  8. **    (C) Copyright 1995 Jaba Development.
  9. **    (C) Copyright 1995 Jan van den Baard.
  10. **        All Rights Reserved.
  11. **/
  12.  
  13. #include "democode.h"
  14.  
  15. /*
  16. **    Generated with IconEdit.
  17. **/
  18. CHIP( UWORD ) HelpI1Data[] =
  19. {
  20. /* Plane 0 */
  21.     0x0000,0x0020,0x0000,0x00A0,0x0020,0x0000,0x0143,0xE020,
  22.     0x0000,0x0A8F,0xF820,0x0000,0x051C,0x7C3F,0xE000,0x0038,
  23.     0x3E00,0x0000,0x0038,0x3E00,0x0800,0x00FF,0xBFFF,0x0800,
  24.     0x003C,0x3E00,0x0800,0x07FF,0xFF3F,0x0800,0x0000,0x7C00,
  25.     0x0800,0x06FF,0x7FFD,0x0800,0x0000,0x7000,0x0800,0x07F7,
  26.     0xFAE7,0x0800,0x0000,0xE000,0x0800,0x07DE,0xFBFD,0x0800,
  27.     0x0000,0xC000,0x0800,0x06FD,0xF7EF,0x0800,0x0001,0xC000,
  28.     0x0800,0x0003,0xE000,0x0800,0x0003,0xE1B7,0x0800,0x0003,
  29.     0xE000,0x0800,0x0001,0xC000,0x0800,0x0000,0x0000,0x0800,
  30.     0x0000,0x0000,0x0800,0x7FFF,0xFFFF,0xF800,
  31. /* Plane 1 */
  32.     0xFFFF,0xFFD0,0x0000,0xFEAF,0xFFDC,0x0000,0xFD5C,0x1FDF,
  33.     0x0000,0xE0B0,0x27DF,0xC000,0xF06B,0x9BC0,0x0000,0xFFD7,
  34.     0xDDFF,0xF000,0xFFD7,0xDDFF,0xF000,0xFF18,0x5C00,0xF000,
  35.     0xFFDB,0xDDFF,0xF000,0xF800,0x18C0,0xF000,0xFFFF,0xBBFF,
  36.     0xF000,0xF900,0xB002,0xF000,0xFFFF,0xAFFF,0xF000,0xF808,
  37.     0x2518,0xF000,0xFFFF,0x5FFF,0xF000,0xF821,0x4402,0xF000,
  38.     0xFFFF,0x3FFF,0xF000,0xF902,0x8810,0xF000,0xFFFE,0xBFFF,
  39.     0xF000,0xFFFD,0xDFFF,0xF000,0xFFFD,0xDE48,0xF000,0xFFFD,
  40.     0xDFFF,0xF000,0xFFFE,0x3FFF,0xF000,0xFFFF,0xFFFF,0xF000,
  41.     0xFFFF,0xFFFF,0xF000,0x0000,0x0000,0x0000,
  42. };
  43.  
  44. struct Image HelpI1 =
  45. {
  46.     0, 0,            /* Upper left corner */
  47.     37, 26, 2,            /* Width, Height, Depth */
  48.     HelpI1Data,                 /* Image data */
  49.     0x0003, 0x0000,        /* PlanePick, PlaneOnOff */
  50.     NULL            /* Next image */
  51. };
  52.  
  53. CHIP( UWORD ) HelpI2Data[] =
  54. {
  55. /* Plane 0 */
  56.     0x0000,0x0020,0x0000,0x00A0,0x0020,0x0000,0x0140,0xE020,
  57.     0x0000,0x0A81,0xF020,0x0000,0x0501,0xF03F,0xE000,0x0001,
  58.     0xF000,0x0000,0x0001,0xF000,0x0800,0x00FF,0xF7FF,0x0800,
  59.     0x0000,0xE000,0x0800,0x07FB,0xFF3F,0x0800,0x0000,0xE000,
  60.     0x0800,0x06FF,0xFFFD,0x0800,0x0000,0xE000,0x0800,0x07F7,
  61.     0xFAE7,0x0800,0x0000,0x4000,0x0800,0x07DE,0xFBFD,0x0800,
  62.     0x0000,0x4000,0x0800,0x06FD,0xF7EF,0x0800,0x0000,0xE000,
  63.     0x0800,0x0001,0xF000,0x0800,0x0001,0xF1B7,0x0800,0x0001,
  64.     0xF000,0x0800,0x0000,0xE000,0x0800,0x0000,0x0000,0x0800,
  65.     0x0000,0x0000,0x0800,0x7FFF,0xFFFF,0xF800,
  66. /* Plane 1 */
  67.     0xFFFF,0xFFD0,0x0000,0xFEAF,0xFFDC,0x0000,0xFD5F,0x1FDF,
  68.     0x0000,0xE0BE,0xEFDF,0xC000,0xF07E,0xEFC0,0x0000,0xFFFE,
  69.     0xEFFF,0xF000,0xFFFE,0xEFFF,0xF000,0xFF00,0x4800,0xF000,
  70.     0xFFFF,0x5FFF,0xF000,0xF804,0x40C0,0xF000,0xFFFF,0x5FFF,
  71.     0xF000,0xF900,0x4002,0xF000,0xFFFF,0x5FFF,0xF000,0xF808,
  72.     0x0518,0xF000,0xFFFF,0xBFFF,0xF000,0xF821,0x0402,0xF000,
  73.     0xFFFF,0xBFFF,0xF000,0xF902,0x0810,0xF000,0xFFFF,0x5FFF,
  74.     0xF000,0xFFFE,0xEFFF,0xF000,0xFFFE,0xEE48,0xF000,0xFFFE,
  75.     0xEFFF,0xF000,0xFFFF,0x1FFF,0xF000,0xFFFF,0xFFFF,0xF000,
  76.     0xFFFF,0xFFFF,0xF000,0x0000,0x0000,0x0000,
  77. };
  78.  
  79. struct Image HelpI2 =
  80. {
  81.     0, 0,            /* Upper left corner */
  82.     37, 26, 2,            /* Width, Height, Depth */
  83.     HelpI2Data,                 /* Image data */
  84.     0x0003, 0x0000,        /* PlanePick, PlaneOnOff */
  85.     NULL            /* Next image */
  86. };
  87.  
  88. /*
  89. **    Put up a simple requester.
  90. **/
  91. ULONG Req( struct Window *win, UBYTE *gadgets, UBYTE *body, ... )
  92. {
  93.     struct bguiRequest    req = { NULL };
  94.  
  95.     req.br_GadgetFormat    = gadgets;
  96.     req.br_TextFormat    = body;
  97.     req.br_Flags        = BREQF_CENTERWINDOW | BREQF_LOCKWINDOW;
  98.     req.br_Underscore    = '_';
  99.  
  100.     return( BGUI_RequestA( win, &req, ( ULONG * )( &body + 1 )));
  101. }
  102.  
  103. /*
  104. **    Object ID's.
  105. **/
  106. #define ID_QUIT                 1
  107. #define ID_HELP                 2
  108.  
  109. VOID StartDemo( void )
  110. {
  111.     struct Window        *window;
  112.     Object            *WO_Window, *GO_Quit, *GO_Help;
  113.     ULONG             signal = 0, rc, tmp = 0;
  114.     BOOL             running = TRUE;
  115.  
  116.     /*
  117.     **    Create the window object.
  118.     **/
  119.     WO_Window = WindowObject,
  120.         WINDOW_Title,        "Image Demo",
  121.         WINDOW_AutoAspect,    TRUE,
  122.         WINDOW_MasterGroup,
  123.             VGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  124.                 StartMember,
  125.                     GO_Help = ButtonObject,
  126.                         BUTTON_Image,        &HelpI1,
  127.                         BUTTON_SelectedImage,    &HelpI2,
  128.                         LAB_Label,        "_Help",
  129.                         LAB_Underscore,         '_',
  130.                         LAB_Place,        PLACE_LEFT,
  131.                         FRM_Type,        FRTYPE_BUTTON,
  132.                         FRM_EdgesOnly,        TRUE,
  133.                         GA_ID,            ID_HELP,
  134.                     EndObject,
  135.                 EndMember,
  136.                 StartMember,
  137.                     HGroupObject,
  138.                         VarSpace( 50 ),
  139.                         StartMember, GO_Quit  = KeyButton( "_Quit",  ID_QUIT  ), EndMember,
  140.                         VarSpace( 50 ),
  141.                     EndObject, FixMinHeight,
  142.                 EndMember,
  143.             EndObject,
  144.     EndObject;
  145.  
  146.     /*
  147.     **    Object created OK?
  148.     **/
  149.     if ( WO_Window ) {
  150.         /*
  151.         **    Assign the keys to the buttons.
  152.         **/
  153.         tmp  = GadgetKey( WO_Window, GO_Quit,  "q" );
  154.         tmp += GadgetKey( WO_Window, GO_Help,  "h" );
  155.         /*
  156.         **    OK?
  157.         **/
  158.         if ( tmp == 2 ) {
  159.             /*
  160.             **    try to open the window.
  161.             **/
  162.             if ( window = WindowOpen( WO_Window )) {
  163.                 /*
  164.                 **    Obtain it's wait mask.
  165.                 **/
  166.                 GetAttr( WINDOW_SigMask, WO_Window, &signal );
  167.                 /*
  168.                 **    Event loop...
  169.                 **/
  170.                 do {
  171.                     Wait( signal );
  172.                     /*
  173.                     **    Handle events.
  174.                     **/
  175.                     while (( rc = HandleEvent( WO_Window )) != WMHI_NOMORE ) {
  176.                         /*
  177.                         **    Evaluate return code.
  178.                         **/
  179.                         switch ( rc ) {
  180.  
  181.                             case    WMHI_CLOSEWINDOW:
  182.                             case    ID_QUIT:
  183.                                 running = FALSE;
  184.                                 break;
  185.  
  186.                             case    ID_HELP:
  187.                                 Req( window, "_Continue", ISEQ_C "This small demo shows you how to use\n"
  188.                                               "standard intuition images in button objects." );
  189.                                 break;
  190.  
  191.                         }
  192.                     }
  193.                 } while ( running );
  194.             } else
  195.                 Tell( "Could not open the window\n" );
  196.         } else
  197.             Tell( "Could not assign gadget keys\n" );
  198.         /*
  199.         **    Disposing of the window object will
  200.         **    also close the window if it is
  201.         **    already opened and it will dispose of
  202.         **    all objects attached to it.
  203.         **/
  204.         DisposeObject( WO_Window );
  205.     } else
  206.         Tell( "Could not create the window object\n" );
  207. }
  208.